Computing technology continues to evolve at an ever-increasing rate. Once the domain of only high-end computer systems, optical drives such as the compact disk (CD) read-only memory (ROM) drives, digital versatile disk (DVD) drives, and the like are now standard equipment on even the lower-cost, entry-level computers. Indeed, because of their low cost, high storage capacity and access time attributes, some systems are now foregoing inclusion of the once preeminent floppy drives in favor of optical drive technology.
Once these optical drives began appearing in computing systems, having the same generic name (CD player) as their favorite audio component, many computing system users wanted to use these optical drive systems to play their favorite audio (music) discs. What the basic user does not realize, however, is that audio discs and data discs utilize separate and distinct formatting standards that make it very difficult for an optical drive in a computer system to accurately read and render audio data.
The compact disc digital audio standard (CD-DA) (also commonly referred to as the Red Book standard), was defined in early 1980 by Philips, N. V. and Sony Corporation. Under the Red Book standard, audio information is digitized at 44.1 kHz in a range of 65,536 possible values (i.e., 16-bit audio). While the CD-DA disc is organized into frames (24 bytes/frame), the audio data itself is not arranged in any particular units, but rather is interlaced in and among frames to improve tolerance to physical flaws or damage to the media (e.g., a scratch).
The compact disk, read-only memory standard (CD-ROM) (also commonly referred to as the Yellow Book standard), was defined by Philips and Sony in 1983 as an extension to the Red Book standard. The CD-ROM standard differs from the CD-DA standard in a number of respects, perhaps the most notorious of which for purposes of rendering audio data is the manner in which the data is organized on the optical media (disc). Under the CD-ROM standard, data tracks are organized into uniquely identifiable sectors facilitating random access search and retrieval applications. More specifically, data tracks are segmented into 2352 byte sectors, 2048 bytes of which are devoted to data, while 304 bytes are dedicated to header information (e.g., block address information, synchronization information, error correction codes (ECC), and the like). This header information enables the optical drive system to accurately seek out sectors on an individual basis (i.e., by reading the header information). When viewing an audio track under the sectorized CD-ROM paradigm, however, the audio information consumes the entire 2352 bytes of the sector, i.e., an audio disc track does not include this 304-byte header block. Consequently, an accurate seek to a specific location within an audio track is very difficult. Indeed, the Red Book standard considers a deviation of ±75 sectors (or ±7350 frames, or ±176,400 bytes, or ±0.5 seconds), which would be perceptible to the human ear. Indeed, an offset of even 0.25 seconds is perceptible to the human ear. One of the reasons for this seemingly “lax” standard is that it is quite rare for an end user to need to be able to instantly jump to a particular point within an audio track.
The typical errors that arise when trying to make such a precise (or accurate) read of audio tracks with a CD-ROM optical drive include: not reading audio data on sector boundaries (i.e., 2352 byte boundaries) (i.e., inaccurate reads), reading different data for the same request at different times (i.e., reading sector 2 then re-reading sector 2 and getting different audio data), overlapping or skipping a small subset of bytes for reads that should have continuous bytes (contiguous reads), and other accuracy problems. These limitations of the optical drive systems in accurately rendering audio media often resulted in undesirable user-perceptible audio artifacts, e.g., pops, holes, etc.
To overcome these limitations, and to attempt to ensure user-acceptable audio, many optical drive systems utilize a stitching technique when rendering audio content. That is, the optical drive system would perform multiple reads of a sector, or groups of sectors, and load the information into a buffer, analyze the buffered data to identify overlapping data between the read samples, and statistically reconstruct the sectors by fusing the overlapping data. Stitching has a number of drawbacks, however, including the storage capacity required to handle the multiple samples, the number of reads that must be performed to stitch together the resultant audio track, and the overall processing complexity required to analyze the samples and piece together the audio tracks.
The need for accurate reads of digital audio content from optical media has increased, as more applications require accurate digital audio (i.e., MP3 applications, Digital Audio Playback under Windows® 98 and Windows® 2000). Given the prior art techniques employed by the various optical drive manufacturers, there was no way to know a priori what to expect from a READ command, especially since a drive's firmware may have implemented a caching algorithm that would prevent simple re-reads of the same sector as test of accuracy.
Thus, a method and apparatus of quantifiably characterizing and improving optical drive performance for rendering digital audio is required, unencumbered by the inherent limitations commonly associated with the prior art. Just such a solution is provided in the description to follow.